home *** CD-ROM | disk | FTP | other *** search
/ Shareware Super Platinum 8 / Shareware Super Platinum 8.iso / mac / MODEMPRO / FC_WIN.ZIP;1 / FCWIN.MST < prev    next >
Encoding:
Text File  |  1993-05-07  |  7.2 KB  |  245 lines

  1. '**************************************************************************
  2. '*                       MSSetup Toolkit Sample 1
  3. '**************************************************************************
  4.  
  5. ''$DEFINE DEBUG  ''Define for script development/debugging
  6.  
  7. '$INCLUDE 'setupapi.inc'
  8. '$INCLUDE 'msdetect.inc'
  9.  
  10. ''Dialog ID's
  11. CONST WELCOME       = 100
  12. ''CONST DESTPATH      = 200
  13. CONST BADPATH       = 300
  14. ''CONST OPTIONS       = 400
  15. CONST DONE          = 500
  16. CONST COOLBOX       = 600
  17. CONST IDC_C         = 403   '' from dialogs.h
  18. CONST IDC_EDIT      = 427
  19.  
  20. CONST INSTAPP       = 1
  21. CONST INSTHELP      = 2
  22. CONST INSTNOT       = 3
  23.  
  24.  
  25. ''Bitmap ID
  26. CONST LOGO = 3
  27.  
  28. GLOBAL DEST$        ''Default destination directory.
  29. GLOBAL OPTCUR$      ''Option selection from option dialog.
  30. GLOBAL GOODDEST$ 
  31. GOODDEST$ = "c:\FCWIN"
  32. GLOBAL SPACEOK%     '' Is there enough space on disk?
  33. GLOBAL PATHOK%      '' Is the path valid?
  34. GLOBAL CURRSTATE%   '' Current state of Install button
  35. PATHOK% = IsDirWritable(GOODDEST$)
  36.  
  37. OPTCUR$ = "CheckItemsState"
  38. FOR i% = 1 TO 3 STEP 1
  39.         AddListItem "CheckItemsIn", "ON"
  40.         AddListItem OPTCUR$, "ON"
  41. NEXT i%
  42.  
  43. SIZETEXT$ = "TextIn"
  44.  
  45. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  46. DECLARE SUB ReCalcDrives
  47. DECLARE SUB DoGreyInstallButton
  48.  
  49. INIT:
  50.     CUIDLL$ = "mscuistf.dll"            ''Custom user interface dll
  51. ''    HELPPROC$ = "FHelpDlgProc"          ''Help dialog procedure
  52.  
  53.     SetBitmap CUIDLL$, LOGO
  54.     SetTitle "FirstClass for Windows Install"
  55.  
  56.     ''szInf$ = GetSymbolValue("STF_SRCINFPATH")
  57.     ''IF szInf$ = "" THEN
  58.     szInf$ = MakePath (GetSymbolValue("STF_CWDDIR"), "FCWIN.INF")
  59.     ''END IF
  60.     ReadInfFile szInf$
  61.     
  62.     MaxWind(HwndFrame())
  63.  
  64. WELCOME:
  65.     sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", 0, "")
  66.     IF sz$ = "CONTINUE" THEN
  67.         UIPop 1
  68.     ELSE
  69.         GOTO QUIT
  70.     END IF
  71.  
  72. GOTO GETPATH
  73.  
  74. GETPATH:
  75.     SetSymbolValue "EditTextIn", GOODDEST$
  76.     SetSymbolValue "EditFocus", "END"
  77.     ReCalcDrives
  78. GETPATHL1:    
  79.     DoGreyInstallButton
  80.     sz$ = UIStartDlg(CUIDLL$, COOLBOX, "FMyCoolDlgProc", 0, "")
  81.     IF sz$ = "CONTINUE" THEN
  82.         UIPop 1
  83.     ELSEIF sz$ = "REACTIVATE" THEN
  84.         GOTO GETPATHL1
  85.     ELSEIF sz$ = "EDIT" THEN
  86.         DEST$ = GetSymbolValue("EditTextOut")
  87.         IF IsDirWritable(DEST$) = 0 THEN
  88.             GOSUB BADPATH
  89.             PATHOK% = 0
  90.             SetMyFocus(IDC_EDIT)
  91.             GOTO GETPATHL1
  92.         ELSE
  93.             GOODDEST$ = DEST$
  94.             PATHOK% = 1
  95.             ReCalcDrives              
  96.         END IF
  97.         GOTO GETPATHL1
  98.     ELSEIF sz$ = "CHK" THEN
  99.         ReCalcDrives
  100.         GOTO GETPATHL1
  101.     ELSE
  102.         UIPop 1
  103.         GOTO QUIT
  104.     END IF
  105.  
  106. INSTALL:
  107.     DEST$ = GOODDEST$
  108.     CreateDir DEST$, cmoNone
  109.     OpenLogFile MakePath(DEST$, "install.log"),0
  110.     WriteToLogFile ""
  111.     WriteToLogFile "----------------------------------------------"
  112.     WriteToLogFile "FirstClass Client for Windows Version 1.0"
  113.     WriteToLogFile "Installation on "+DEST$
  114.  
  115.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  116.     OPTCUR$ = "CheckItemsState"
  117.  
  118.     WriteToLogFile "Source from " + SrcDir$
  119.     ClearCopyList
  120.     IF GetListItem(OPTCUR$, INSTAPP) = "ON" THEN
  121.         AddSectionFilesToCopyList "Executes", SrcDir$, DEST$
  122.         WriteToLogFile "Executables..............OK"
  123.     ENDIF
  124.     IF GetListItem(OPTCUR$, INSTHELP) = "ON" THEN
  125.         AddSectionFilesToCopyList "Help", SrcDir$, DEST$
  126.         WriteToLogFile "Help.....................OK"    
  127.     ENDIF
  128.     IF GetListItem(OPTCUR$, INSTNOT) = "ON" THEN
  129.         AddSectionFilesToCopyList "Notify", SrcDir$, DEST$
  130.         WriteToLogFile "Network Notify...........OK"
  131.     ENDIF
  132.     IF GetListItem(OPTCUR$, INSTAPP) = "ON" THEN
  133.         CreateDir MakePath(DEST$, "SCRIPTS"), cmoNone
  134.         AddSectionFilesToCopyList "Modems", SrcDir$, MakePath(DEST$,"SCRIPTS")
  135.         WriteToLogFile "Modems...................OK"
  136.         SetDir$ = MakePath(DEST$, "SETTINGS")
  137.         CreateDir SetDir$, cmoNone
  138.         AddSectionFilesToCopyList "Systems", SrcDir$, SetDir$
  139.         WriteToLogFile "Systems..................OK"
  140.     ENDIF
  141.     WriteToLogFile " "
  142.     CopyFilesInCopyList
  143.     WriteToLogFile "Decompressing and copying complete."
  144.     WriteToLogFile "Installation Complete."
  145.     
  146.     
  147.     Exe$ = MakePath(DEST$,"fcclient.exe")
  148.  
  149.     CreateProgmanGroup "FirstClass", "", cmoNone
  150.     ShowProgmanGroup  "FirstClass", 1, cmoNone
  151.     IF GetListItem(OPTCUR$, INSTAPP) = "ON" THEN
  152.         CreateProgmanItem "FirstClass", "FirstClass Client",  Exe$, " ,59,20,20,"+SetDir$, cmoOverwrite
  153.         CreateProgmanItem "FirstClass", "SoftArc Online",  Exe$+" " +MakePath(SetDir$, "saol_mdm.fcs"), " ,43,60,200,"+SetDir$, cmoOverwrite
  154.         CreateProgmanItem "FirstClass", "MAGIC", Exe$+" "+MakePath(SetDir$, "Magic.fcs"), " ,43,60,100,"+SetDir$, cmoOverwrite
  155.         CreateProgmanItem "FirstClass", "Generic Modem", Exe$+" "+MakePath(SetDir$, "Modems.fcs"), " ,43,300,100,"+SetDir$, cmoOverwrite
  156.         CreateProgmanItem "FirstClass", "Generic Network", Exe$+" "+MakePath(SetDir$, "Network.fcs"), " ,43,60,100,"+SetDir$, cmoOverwrite
  157.         CreateProgmanItem "FirstClass", "About Modems", "write "+MakePath(DEST$, "modems.wri"), " ,00,60,100,"+SetDir$, cmoOverwrite
  158.         CreateProgmanItem "FirstClass", "Read Me", "write "+MakePath(DEST$, "read_me.wri"), " ,00,200,400,"+SetDir$, cmoOverwrite
  159.     ENDIF
  160.     IF GetListItem(OPTCUR$, INSTNOT) = "ON" THEN
  161.         CreateProgmanItem "FirstClass", "FirstClass Notify",  MakePath(DEST$,"fcnotify.exe"), " ,0,20,100,"+SetDir$, cmoOverwrite
  162.     ENDIF
  163.     WriteToLogFile "Created Program Manager Groups."
  164.     
  165.     CreateIniKeyValue "WIN.INI", "Extensions", "FCS", Exe$ +" ^.fcs", cmoOverwrite
  166.     WriteToLogFile "Created File Manager Associations."
  167.     CloseLogFile
  168.     sz$ = UIStartDlg(CUIDLL$, DONE, "FInfoDlgProc", 0, "")
  169.     UIPop 1 
  170. QUIT:
  171. END
  172.  
  173. BADPATH:
  174.     ''i% = DoMsgBox("Bad Path", DEST$, 0)
  175.     sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfoDlgProc", 0,"")
  176.     IF sz$ <> "CONTINUE" THEN
  177.         GOTO BADPATH
  178.     END IF    
  179.     UIPop 1
  180. RETURN
  181.  
  182. FATALERR:
  183.     i% = DoMsgBox("No INF file found.","No INF",0)
  184.     GOTO QUIT
  185.  
  186. '**
  187. '** Purpose:
  188. '**     Appends a file name to the end of a directory path,
  189. '**     inserting a backslash character as needed.
  190. '** Arguments:
  191. '**     szDir$  - full directory path (with optional ending "\")
  192. '**     szFile$ - filename to append to directory
  193. '** Returns:
  194. '**     Resulting fully qualified path name.
  195. '*************************************************************************
  196. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  197.     IF szDir$ = "" THEN
  198.         MakePath = szFile$
  199.     ELSEIF szFile$ = "" THEN
  200.         MakePath = szDir$
  201.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  202.         MakePath = szDir$ + szFile$
  203.     ELSE
  204.         MakePath = szDir$ + "\" + szFile$
  205.     END IF
  206. END FUNCTION
  207.  
  208. SUB ReCalcDrives STATIC
  209.     free& = 0
  210.     touse& = 0
  211.     IF GetListItem("CheckItemsState", INSTAPP) = "ON" THEN
  212.         touse& = touse& + 809*1024
  213.     END IF
  214.     IF GetListItem("CheckItemsState", INSTNOT) = "ON" THEN
  215.         touse& = touse& + 59*1024
  216.     END IF
  217.     IF GetListItem("CheckItemsState", INSTHELP) = "ON" THEN
  218.         touse& = touse& + 425*1024
  219.     END IF
  220.     
  221.     free& = GetFreeSpaceForDrive(MID$(GOODDEST$,1,1))
  222.     free& = free& - touse&
  223.     IF free& < 0 THEN
  224.         SPACEOK% = 0
  225.     ELSE
  226.         SPACEOK% = 1
  227.     END IF
  228.     RemoveSymbol "TextIn" 
  229.     AddListItem "TextIn", STR$(free&/1024)+"K"
  230.     AddListItem "TextIn", STR$(touse&/1024)+"K"
  231. END SUB
  232.  
  233. SUB DoGreyInstallButton STATIC
  234.     TempState% = PATHOK% + SPACEOK%
  235.     ''IF TempState% <> CURRSTATE% THEN
  236.         IF (TempState% = 2) THEN
  237.             i% = ChangeWindState(IDC_C, 1)
  238.         ELSE
  239.             i% = ChangeWindState(IDC_C, 0)
  240.         END IF
  241.         ''CURRSTATE% = TempState%
  242.     ''END IF
  243. END SUB
  244.  
  245.